package com.biu.billiards.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.biu.billiards.model.Login.WxLoginVo;
import com.biu.billiards.model.bo.ShopBO;
import com.biu.billiards.model.bo.UserBO;
import com.biu.billiards.model.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.biu.billiards.model.vo.jsApiPay.GetApiPlayVo;
import com.biu.billiards.model.vo.shop.AddShopVo;
import com.biu.billiards.model.vo.shop.GetShopVo;
import com.biu.billiards.model.vo.shop.UpdateShopVO;
import com.biu.billiards.model.vo.user.AddUserVo;
import com.biu.billiards.model.vo.user.GetUserVo;
import com.biu.billiards.model.vo.user.UpdateUserVO;

import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author xue
 * @since 2023-09-25
 */
public interface IUserService extends IService<User> {




    UserBO getInfo(WxLoginVo wxLoginVo, HttpServletRequest request);


    User getUser(Integer userId);

    UserBO wxLogin(WxLoginVo wxLoginVo);

    IPage<UserBO> getUserPage(GetUserVo getUserVo);

    Boolean updateUser(UpdateUserVO updateUserVO);

    Boolean addUser(AddUserVo addUserVo);




    Boolean updateUserWith(Integer userId,Integer userType);


    Boolean addWallet(Integer userId, BigDecimal price);

    Boolean deleteUser(Integer userId);


    Boolean userTopUp(GetUserVo getUserVo);

    Boolean topUp(GetUserVo getUserVo);

    Boolean userBalanceLack(GetApiPlayVo getApiPlayVo);


    Boolean payBalance(GetApiPlayVo getApiPlayVo);









}
